<?php

namespace App\Http\Controllers\Admin;

// 导入房源模型
use App\Models\Base;
use App\Models\Fangattr;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class FangAttrController extends BaseController
{
    /**
     * 列表
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        // 获取搜索框
        $kw = $request->get('kw');
        // 分页 搜索
        // 参数1 变量值存在，则执行 参数2 ---> 匿名函数
        $data = Fangattr::when($kw, function ($query) use ($kw) {
            $query->where('name', 'like', "%{$kw}%");
            $query->orWhere('field_name', 'like', "%{$kw}%");
        })->get()->toArray();
        $data = (new Base)->treeLevel($data);
        return view('admin.fangattr.index', compact('data'));

    }

    /**
     * 添加界面显示
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        // 获取顶部属性
        $data = Fangattr::where("pid",0)->get();
        // 指定视图并赋值
        return view('admin.fangattr.create',compact('data'));
    }

    // 文件上传
    public function upfile(Request $request){
        // 默认图标
        $pic = config('up.pic');
        if ($request->hasFile('file')) {
            // 上传
            // 参数2 配置的节点名称
            $ret = $request->file('file')->store('','fangattr');
            $pic = '/uploads/fangattr/'.$ret;
        }
        return ['status' => 0,'url' => $pic];
    }

    /**
     * 添加处理
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        // 表单验证
        $this->validate($request,[
            'name' => 'required'
        ]);
        // 验证通过后，入库并跳转到列表页面
        // 获取数据
        $postData = $request->except(['_token','file']);
        // 因为字段不能为null
        $postData['field_name'] = !empty($postData['field_name']) ? $postData['field_name'] : '';
        // 入库
        Fangattr::create($postData);
        // 跳转
        return redirect(route('admin.fangattr.index'));
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Fangattr  $fangattr
     * @return \Illuminate\Http\Response
     */
    public function show(Fangattr $fangattr)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Fangattr  $fangattr
     * @return \Illuminate\Http\Response
     */
    public function edit(Fangattr $fangattr)
    {
        // 获取顶部属性
        $data = Fangattr::where("pid",0)->get();
        return view('admin.fangattr.edit',compact('data','fangattr'));
    }

    /**
     * 修改处理
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Fangattr  $fangattr
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Fangattr $fangattr)
    {
        // 表单验证
        $this->validate($request,[
            'name' => 'required'
        ]);
        // 验证通过后，入库并跳转到列表页面
        // 获取数据
        $postData = $request->except(['_token','file','_method']);
        // 因为字段不能为null
        $postData['field_name'] = !empty($postData['field_name']) ? $postData['field_name'] : '';
        // 入库
        $fangattr->update($postData);
        // 跳转
        return redirect(route('admin.fangattr.index'));
    }

    /**
     * 删除操作
     *
     * @param  \App\Models\Fangattr  $fangattr
     * @return \Illuminate\Http\Response
     */
    public function destroy(Fangattr $fangattr)
    {
        $fangattr->delete();
        return ['status' => 0,'msg' => '删除成功'];
    }
}
